package com.sss.hloster06;

import java.util.Scanner;

public class JavaExercise30 {

	public static void main(String[] args) {
		test30();

	}

	/**
	 * 有一个已经排好序的数组。现输入一个数，要求按原来的规律将它插入数组中。
	 */
	private static void test30() {
		// 创建两个数组,在第一个数组的元素遍历到第二个数组中,然后把要插入的元素与数组的元素进行比较
		int[] arr01 = new int[] { 1, 2, 4, 5, 6 };
		int index = arr01.length;
		System.out.println("输入一个数：");
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] arr02 = new int[arr01.length + 1];
		System.out.println("插入元素之前：");
		// 把第一个数组的元素遍历到第二个数组中
		for (int i = 0; i < arr01.length; i++) {
			arr02[i] = arr01[i];
			System.out.print(arr02[i] + "  ");
		}
		System.out.println();
		// 把要插入的元素与数组中的元素进行比较,如果要插入的元素小于数组中的元素,
		//把当前的下标给index
		for (int j = 0; j < arr02.length; j++) {
			if (n < arr02[j]) {
				index = j;
				break;
			}
		}
		// 依次把index之后的数组的元素的值，给它的下一个下标
		for (int x = arr02.length - 1; x > index; x--) {
			arr02[x] = arr02[x - 1];
		}
		// 把要插入的元素的值赋值给index
		arr02[index] = n;
		System.out.println("插入元素之后：");
		// 遍历插入元素后的数组
		for (int y = 0; y < arr02.length; y++) {
			System.out.print(arr02[y] + "  ");
		}
	}
}
